第四部分 第二章 4.DQL
条评论2.4 查询语句
2.4.1 排序查询
- 语法:order by 子句
1 | order by 排序字段1 排序方式1, 排序字段2 排序方式2... |
排序方式:
- ASC:升序,默认的。
- DESC:降序。
注意:
- 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
2.4.2 聚合函数
将一列数据作为一个整体,进行纵向的计算。
- count:计算个数
- 一般选择非空的列:主键
- count(*)
- max:计算最大值
- min:计算最小值
- sum:计算和
- avg:计算平均值
- 注意:聚合函数的计算,排除null值。
解决方案:1. 选择不包含非空的列进行计算 2. IFNULL函数
2.4.3 分组查询
- 语法:group by 分组字段;
- 注意:
- 分组之后查询的字段:分组字段、聚合函数
- where 和 having 的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
- where 后不可以跟聚合函数,having可以进行聚合函数的判断。
– 按照性别分组。分别查询男、女同学的平均分
1 | SELECT sex , AVG(math) FROM student GROUP BY sex; |
– 按照性别分组。分别查询男、女同学的平均分,人数
1 | SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex; |
– 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组
1 | SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex; |
– 按照性别分组。分别查询男、女同学的平均分,人数
要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
1 | SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2; |
2.4.4 分页查询
语法:limit 开始的索引,每页查询的条数;
公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
– 每页显示3条记录1
2
3SELECT * FROM student LIMIT 0,3; -- 第1页
SELECT * FROM student LIMIT 3,3; -- 第2页
SELECT * FROM student LIMIT 6,3; -- 第3页limit 是一个MySQL”方言”
本文标题:第四部分 第二章 4.DQL
文章作者:foreverSFJ
发布时间:2019-08-22 16:05:29
最后更新:2019-08-22 16:05:29
原始链接:Notes/Java/JavaWeb/02_4 DQL.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
分享